package Data::Semantic::URI::file;

use strict;
use warnings;


our $VERSION = '0.01';


use base qw(Data::Semantic::URI);


use constant REGEXP_KEYS => qw(URI file);
use constant KEEP_KEYS   => qw(
    URI scheme host_and_path host path_with_slash path_no_slash
);


1;


__END__

{% USE p = PodGenerated %}

=head1 NAME

{% p.package %} - semantics for file URIs

=head1 SYNOPSIS

    my $obj = {% p.package %}->new;
    if ($obj->is_well_formed($value)) { ... }

=head1 DESCRIPTION

This class can tell whether a value is a file URI, as defined by RFC 1738. The
C<valid()> method will respect the inherited C<keep> boolean attribute.

If C<keep> is set, C<kept()> will return a hash with the following keys/value
pairs:

=over 4

=item URI

The complete URI.

=item scheme

The scheme.

=item host_and_path

The part of the URI following "file://".

=item host

The hostname

=item path_with_slash

The path name, including the leading slash.

=item path_no_slash

The path name, without the leading slash.

=back

{% p.write_inheritance %}

=head1 METHODS

=over 4

{% p.write_methods %}

=back

=head1 SEE ALSO

L<Regexp::Common::URI::file>

{% PROCESS standard_pod %}

=cut

